WebXR系列:(4)模拟汽车之家全景看车功能 |
您所在的位置:网站首页 › 汽车之家 ar看车怎么样可靠吗 › WebXR系列:(4)模拟汽车之家全景看车功能 |
导读: 本文为大家讲解一个模拟汽车之家全景看车功能的案例,目标效果大家可以进入汽车之家官方网站选择一款车型进入到全景看车页面,也可以通过以下链接进入本次案例选择的车型页面(https://pano.autohome.com.cn/car/ext/54458?appversion=),本文选择了红旗H9作为素材参考。 用户在该页面可以通过鼠标或触屏控制车的朝向,查看车体360度外观,从视觉上产生3D的展示效果,实际上这里并没有采用3D模型进行展示,而是通过拍摄各个角度的照片序列,通过切换照片来实现要达成的效果,如果用真正的3D模型来展示,可能存在成本高和加载速度慢等问题,因此选择了这种性价比高的折衷方案,同样的技术实现方式,在一些楼盘展示项目中也有采用。 开发步骤: 下面我们逐步讲解我们的实现过程: (1)获取汽车各个角度的照片,作者通过浏览器调试的方式获取到红旗H9的30张各个角度的照片,并进行了按顺序命名,如下图所示: (2)新建textures目录存放所有照片,将babylon.js库文件放至当前路径,并新建index.html文件。 (3)初始化基本页面,并引用BabylonJS库,初始化代码如下: (4)初始化引擎,在新建Engine之前,需要通过dom api获取画布(canvas)元素,并监听窗口事件和引擎的循环事件。 接下来新建场景,并设置场景的背景颜色,我们将场景的创建单独封装在一个函数中实现。 (5)创建相机,由于本案例中,车的各个方向的展示是通过切换车各角度的照片,并非相机环绕观察,因此,我们只需创建一个基本的Camera对象即可,如果需要相机环绕观察物体,推荐大家使用ArcRotateCamera。 (6)将汽车各角度的照片加载到内存中,在BabylonJs中,一张照片可以创建一个Texture对象或一个Sprite,这里我们采用Texture数组来存储所有的照片。 (7)在场景中创建一个面片(plane),竖直显示在相机正前方,并选择其中一张照片作为面片的初始纹理。 完成该步骤后,大家刷新网页可以看到下图所示的效果: (8)下面我们构造一个函数,用来更新当前显示的车照片,该函数接收一个movement参数,该参数代表当前鼠标或触屏在X方向上的变化,我们根据该值来判断车的旋转角度为逆时针或顺时针,并实现照片切换的功能。 (9)最后一部分代码,我们通过onPointerObservable监听鼠标的移动事件,并得到鼠标事件中X方向的变化量movement,然后调用上一步中的updatePano函数,并将movement作为参数传递给updatePano。 (10)保存代码,刷新网页我们可以测试我们实现的效果,其中一些参数也可以在测试过程中进行修改,以达到最佳体验。 教程视频: 模拟汽车之家全景看车功能 文末福利: 私信UP获得完整的案例代码 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |